package cnooc.energy.mapper;

import cnooc.energy.domain.DeviceDataLocation;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * 设备点位配置Mapper接口
 * 
 * @author lambda
 * @date 2023-11-28
 */
public interface DeviceDataLocationMapper 
{
    /**
     * 查询设备点位配置
     * 
     * @param id 设备点位配置主键
     * @return 设备点位配置
     */
    public DeviceDataLocation selectDeviceDataLocationById(Long id);

    /**
     * 查询设备点位配置列表
     * 
     * @param deviceDataLocation 设备点位配置
     * @return 设备点位配置集合
     */
    public List<DeviceDataLocation> selectDeviceDataLocationList(DeviceDataLocation deviceDataLocation);


    /**
     * 根据设备ID查询点位配置列表
     *
     * @param deviceId   设备点位配置
     * @param queryClass
     * @return 设备点位配置集合
     */
    public List<DeviceDataLocation> selectLocationByDeviceId(@Param("deviceId") Long deviceId,@Param("queryClass") String queryClass);

    /**
     * 新增设备点位配置
     * 
     * @param deviceDataLocation 设备点位配置
     * @return 结果
     */
    public int insertDeviceDataLocation(DeviceDataLocation deviceDataLocation);

    /**
     * 修改设备点位配置
     * 
     * @param deviceDataLocation 设备点位配置
     * @return 结果
     */
    public int updateDeviceDataLocation(DeviceDataLocation deviceDataLocation);

    /**
     * 删除设备点位配置
     * 
     * @param id 设备点位配置主键
     * @return 结果
     */
    public int deleteDeviceDataLocationById(Long id);

    /**
     * 批量删除设备点位配置
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDeviceDataLocationByIds(Long[] ids);

    List<DeviceDataLocation> otherLocation(@Param("deviceId") String deviceId, @Param("selfId") String selfId);

    Set<String> locationByDeviceId(@Param("deviceId") String deviceId);
}
